import { http } from "@/utils/http";
import type { PageResponse } from "@/types";
/** 获取数字人列表 */
export function getNoFailHumanInfoList(
  data?: object
): Promise<NoFailHumanInfoListData> {
  return http.request({
    url: "/digitalHuman/getNoFailHumanInfoList",
    method: "post",
    data
  });
}

/** 图片信息 */
export interface NoFailHumanInfoListData {
  /** 图片信息列表 */
  infoList: InfoListData[];
  /** 通知总数 */
  noticeCount: number;
}
/** 图片信息 */
export interface InfoListData {
  /** 创建时间 */
  humanId: string;
  /** 图片地址 */
  humanImageUrl: string;
  /** 图片宽度 */
  humanImgWidth: number;
  /** 图片高度 */
  humanImgHigh: number;
  /** 任务状态 */
  humanTaskStatus: string;
  /** 失败信息 */
  humanTaskFailMessage: string;
}
/** 获取音色列表 */
export function getNoFailTimbreInfoList(
  data?: object
): Promise<NoFailTimbreInfoListData> {
  return http.request({
    url: "/digitalHuman/getNoFailTimbreInfoList",
    method: "post",
    data
  });
}
/** 获取分类音色列表 */
export function getTimbreInfoVoList(
  data?: object
): Promise<PageResponse<NoFailTimbreInfoData>> {
  return http.request({
    url: "/digitalHuman/getTimbreInfoVoList",
    method: "post",
    data
  });
}
/** 图片信息 */
export interface NoFailTimbreInfoListData {
  /** 图片信息列表 */
  infoList: NoFailTimbreInfoData[];
  /** 通知总数 */
  noticeCount: number;
}
/** 色信息 */
export interface NoFailTimbreInfoData {
  /** 编号 */
  timbreId: string;
  /** 是否收藏 */
  isCollect: number;
  /** 音色名称 */
  timbreAnchorName: string;
  /** 音色名称 */
  timbreName: string;
  /** 音色状态 */
  timbreTaskStatus: string;
  /** 音色失败信息 */
  timbreTaskFailMessage: string;
  /** 音色版本 */
  timbreVersionType: number;
  /** 音色性别 */
  timbreGender: number;
}
/** 收藏 */
export function collectTimbre(data?: object): Promise<boolean> {
  return http.request({
    url: "/digitalHuman/collectTimbre",
    method: "post",
    data
  });
}
/** 获取所需AI币 */
export function getAiCoin(data?: object): Promise<AiCoinInfoData> {
  return http.request({
    url: "/digitalHuman/getAiCoin",
    method: "post",
    data
  });
}
/** 色信息 */
export interface AiCoinInfoData {
  /** 所需AI币 */
  aiCoinAmount: number;
  /** 所需时间 */
  millSecond: number;
}
/** 获取视频生成信息 */
export function getVideoInfoListForIds(
  data?: object
): Promise<VideoInfoListForIdsInfoData[]> {
  return http.request({
    url: "/digitalHuman/getVideoInfoListForIds",
    method: "post",
    data
  });
}
/** 视频生成信息 */
export interface VideoInfoListForIdsInfoData {
  /** 数字人图片 */
  humanImageUrl: string;
  /** 视频状态 */
  videoStatus: string;
  /** 数字人类型 */
  humanType: string;
  /** 视频生成进度 */
  videoProgress: number;
}
